
clear b;clear;
% 1. 扫描蓝牙设备
disp('Scanning for BLE devices...');
devices = blelist; % 扫描附近的 BLE 设备
disp('Available BLE devices:');
disp(devices);

% 2. 连接到目标设备
deviceName = 'QWER'; % 替换为你的 STM32WB55 的设备名称
disp(['Connecting to ', deviceName, '...']);
b = ble(deviceName); % 创建 BLE 连接对象
disp(['Connected to ', deviceName]);

% 3. 查找服务和特征值
disp('所有服务:');
disp(b.Services); % 列出设备支持的所有服务

% 替换为 STM32WB55 的服务和特征值 UUID
serviceUUID = '0000FE40-CC7A-482A-984A-7F2ED5B3E58F'; % 替换为服务的 UUID
characteristicUUID = '0000FE41-8E22-4541-9D4C-21EDAE82ED19'; % 替换为可写特征值的 UUID

% 获取特征值
disp('获取能写的特征值...');
characteristic = characteristic(b, serviceUUID, characteristicUUID);

% 4. 生成正弦波数据
Fs = 100; % 采样频率 (Hz)
t = 0:1/Fs:2*pi; % 时间向量，1 周期
amplitude = 120; % 正弦波幅值 (0-255)
offset = 121; % 偏移量 (用于将正负波变成非负值)
sineWave = amplitude * sin(t) + offset; % 生成正弦波数据
sineWave = uint8(sineWave); % 转换为无符号 8 位整数

% 5. 持续发送数据到 STM32WB55
disp('持续发送数据到 STM32WB55');
try
    while true
        for i = 1:length(sineWave)
            % 每次发送一个数据点
            write(characteristic, sineWave(i));
            pause(0.05); % 延时 50 ms（控制发送速率）
        end
    end
catch ME
    disp('有一个错误发生:');
    disp(ME.message);
end

% 6. 断开连接
clear b; % 关闭蓝牙连接
disp('断开');

